
package com.insigma.business.qrcode.soldier._consumer;




import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseDeleteRequest;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.soldier.dto.SoldierJobMessageInfoDTO;
import com.insigma.business.qrcode.soldier.dto.SoldierMessageInfoDTO;
import com.insigma.business.qrcode.soldier.dto.SoldierMessageInfoUpdateRequest;
import com.insigma.business.qrcode.soldier.dto.SoldierMessageStatusDTO;
import com.insigma.business.qrcode.soldier.request.*;

import java.util.List;


public interface SoldierMessageInfoConsumer {

    
    BasePagingResponse<List<SoldierMessageInfoDTO>> searchSoldierMessageInfo(final SoldierMessageInfoSearchRequest searchRequest);

    
    BaseResponse<SoldierMessageInfoDTO> getSoldierMessageInfo(final BaseGetRequest baseGetRequest);

    
    BaseResponse<String> insertSoldierMessageInfo(final SoldierMessageInfoInsertRequest insertRequest);

    
    BaseResponse<Integer> updateSoldierMessageInfo(final SoldierMessageInfoUpdateRequest updateRequest);

    
    BaseResponse<Integer> deleteSoldierMessageInfo(final BaseDeleteRequest deleteRequest);

    BaseResponse<Integer> setMessageRead(String id, String soldierId);

    BaseResponse<List<SoldierMessageInfoDTO>> listRemindAndUnreadMessageInfo(String soldierUserId);

    BasePagingResponse<List<SoldierMessageInfoDTO>> searchMyMessage(SoldierMessageInfoSearchRequest soldierMessageInfoSearchRequest);

    BaseResponse<SoldierMessageStatusDTO> countNotReadMessage(String soldierUserId);

    
    BaseResponse<List<SoldierMessageInfoDTO>> listNotSignMessageOfPlacement(String soldierId);

    
    BaseResponse<String> addMessageOfPlacement(final SoldierMessageInfoInsertRequest soldierMessageInfoInsertRequest);

    
    BaseResponse<String> addMessageSignOfPlacement(final CommonSignInfoInsertRequest request);

    BaseResponse<Integer> publishMessage(SoldierMessageInfoUpdateRequest request);

    BasePagingResponse<List<SoldierJobMessageInfoDTO>> searchJobMessageStats(CommonLedgerStatsRequest request);

    BaseResponse<String> batchAddMessageOfPlacement(SoldierMessageInfoInsertRequest soldierMessageInfoInsertRequest);
}
